package com.bookrecomm.service;

import com.bookrecomm.entity.Tag;
import com.bookrecomm.vo.TagVO;

import java.util.List;

/**
 * 标签服务接口
 * 定义标签相关的业务逻辑方法
 */
public interface TagService {

    /**
     * 获取所有标签列表
     * @return 标签列表
     */
    List<TagVO> findAll();

    /**
     * 获取热门标签列表
     * @param limit 限制数量
     * @return 热门标签列表
     */
    List<TagVO> findHotTags(int limit);

    /**
     * 根据ID查询标签
     * @param id 标签ID
     * @return 标签信息
     */
    TagVO findById(Long id);

    /**
     * 添加标签
     * @param tag 标签信息
     * @return 添加后的标签信息
     */
    TagVO addTag(Tag tag);

    /**
     * 更新标签
     * @param id 标签ID
     * @param tag 标签信息
     * @return 更新后的标签信息
     */
    TagVO updateTag(Long id, Tag tag);

    /**
     * 删除标签
     * @param id 标签ID
     * @return 是否删除成功
     */
    boolean deleteTag(Long id);

    /**
     * 增加标签热度
     * @param id 标签ID
     * @param increment 增量
     * @return 更新后的标签信息
     */
    TagVO incrementHeat(Long id, Integer increment);
}
